package com.tengju.bff.infrastructure.message.rabbitmq.consumer.dto;


import com.tengju.bff.infrastructure.message.rabbitmq.consumer.enums.UserRoleLevel;
import lombok.Data;

import java.io.Serializable;


@Data
public class RoleGradeMessage implements Serializable {


    private static final long serialVersionUID = -7380628987417974209L;


    /**
     * 唯一键
     */
    private String bizId;

    /**
     * 用户id
     */
    private Long idCode;

    /**
     * 操作类型 1-升级,2-降级
     */
    private Integer operateType;

    /**
     * 原等级
     */
    private Integer oldLevel;
    /**
     * 新等级
     */
    private Integer newLevel;

    /**
     * 等级变更时间戳
     */
    private Long createAt;
    /**
     * 变更前上级
     */
    private Long oldPidCode;
    /**
     * 变更前小团队第一个黑卡
     */
    private Long oldFirstBlackIdCode;
    /**
     * 变更后小团队第一个黑卡
     */
    private Long firstBlackIdCode;
    /**
     * 新的直属上级
     */
    private Long parentIdCode;
    /**
     * 上级角色等级
     */
    private Integer parentAbmLevel;
    /**
     * 新的育成上级
     */
    private Long growIdCode;
    /**
     * 育成上级abm等级
     */
    private Integer growAbmLevel;


    /**
     * 变更类型 1-充值、2-礼包、6-成长值，7-签约
     * AbmGradeChangeTypeEnum
     */
    private Integer changeType;
    /**
     * 变更详情
     * TypeDetailEnum
     */
    private Integer changeTypeDetail;


    /**
     * 基础等级
     */
    private Integer baseLevel;


    /**
     * 是否升级为经销商
     *
     * @return true:是 false:不是
     */
    public boolean gradeDealer() {
        if (newLevel == null) {
            return false;
        }
        if (UserRoleLevel.BLACK.getCode() == newLevel) {
            return true;
        }
        return false;
    }


}
